iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
Software Development

C# 學習之路系列 第 14

[DAY13] C#基礎與實作(正規表達式)

  • 分享至 

  • xImage
  •  

C# 程式基礎

  • 正則表達式(Regular Expression,簡稱正則或正規表達式)是一種強大的文本處理工具,用於搜尋、匹配和處理字串中的文本模式。它們通常由特殊字符和元字符組成,這些字符描述了要匹配的模式。

正規表達式(Regular Expression):

在 C# 中,可以使用 `System.Text.RegularExpressions` 命名空間中的 Regex 類來處理正則表達式。

常見的正則表達式元字符:

  規則運算式語言 - 快速參考

建立正規表達式物件:

  • 程式範例:
    string pattern = @"[0-9]+"; // 匹配一個或多個數字
    Regex regex = new Regex(pattern);
    

單次匹配 (Match):

使用 `Match` 方法來查找字串中的第一個匹配。
  • 程式範例:
    string input = "12345 abc 6789";
    Match match = regex.Match(input);
    if (match.Success)
    {
        string matchedValue = match.Value; // 匹配到的值: 12345
    }
    

多次匹配 (Matches):

使用 `Matches` 方法來查找字串中的所有匹配。
  • 程式範例:
    string input = "apple,banana,grape";
    regex = new Regex(@"[a-z]+") ;
    MatchCollection matches = regex.Matches(input);
    //    apple      banana     grape
    // matches[0]  matches[1]  matches[2]
    foreach ( Match match2 in matches)
    {
        string matchedValue = match2.Value;
    }
    

替換 (Replace):

使用 `Replace` 方法來替換匹配的部分。
  • 程式範例:
    input = "Hello 123 world 456";
    regex = new Regex(@"[0-9]+") ;
    string replacement = "X";
    string result = regex.Replace(input, replacement);
    Console.WriteLine(result);  // Hello X world X
    

常見的正規表達式舉例:

匹配電子郵件地址:

  • 程式範例:
    string input = "我的電子郵件是john.doe@example.com, xx@abc.com請聯絡我。";
    string pattern = @"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}";
    MatchCollection matches = Regex.Matches(input, pattern);
    
    foreach (Match match in matches)
    {
        Console.WriteLine("找到電子郵件地址:" + match.Value);
    } 
    // 找到電子郵件地址:john.doe@example.com
    // 找到電子郵件地址:xx@abc.com
    

匹配日期格式(YYYY-MM-DD):

  • 程式範例:
    string input = "今天的日期是2023-09-26,明天是2023-09-27請注意。";
    string pattern = @"\d{4}-\d{2}-\d{2}";
    MatchCollection matches = Regex.Matches(input, pattern);
    
    foreach (Match match in matches)
    {
        Console.WriteLine("找到日期:" + match.Value);
    }
    // 找到日期:2023-09-26
    // 找到日期:2023-09-27
    

程式實作練習:

參考來源

  1. ChatGPT
  2. C#最強入門邁向頂尖高手之路王者歸來
  3. w3schools C#
  4. microsoft .NET 規則運算式
  5. regexone.com

期望挑戰30天持續更新成功 ~ DAY13


上一篇
[DAY12] C#基礎與實作(字串處理)
下一篇
[DAY14] C#基礎與實作(簡易-檔案處理)
系列文
C# 學習之路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言